/**
 * 列表页引用
 */
export default {
	data() {
		return {
			queryParams: { // 查询参数
				pageNum: 1,
				pageSize: 10
			},
			tableTotal: 0, // 总数
			tableData: [], // 列表数据
			loadingStep: 0,  // 0 加载中； 1 加载完成，还有更多；2加载完成，没有更多
			method: undefined,
			callback: undefined
		}
	},
	// 加载更多
	onReachBottom() {
		if (this.tableTotal > this.tableData.length) {
			this.queryParams.pageNum++;
			this.queryList(this.method, this.callback);
		}
	},
	methods: {
		// 列表查询
		async queryList(method, callback) {
			this.method = method;
			this.callback = callback;
			this.loadingStep = 0
			try{
				const res = await method(this.queryParams);
				this.tableTotal = res.total;
				console.log(res.rows);
				callback(res.rows);
				this.tableData.push(...res.rows)
				// 加载完成，还有更多
				if(this.tableTotal > this.tableData.length){
					this.loadingStep = 1
				}else{
					this.loadingStep = 2
				}
			}catch(err){
				console.log(err);
				this.loadingStep = 1
				this.toast(err)
			}
		},
		// 初始化查询
		initQuery(){
			this.queryParams = {
				pageNum: 1,
				pageSize: 10
			}
			this.loadingStep = 0
			this.tableData = []
			this.tableTotal = 0
		}
	}
}